#Boa:Frame:showFotos

import wx
import wx.grid
import wx.richtext
import Image
import consultasBD
import utiles
import ingresoManual
import os

imageFile = u'fotos/sussan_1.jpg'

ROJO = (255, 45, 45, 255)
BLANCO = (255, 255, 255, 255)
NEGRO = (0, 0, 0, 255)
GRIS = (153, 153, 153, 255)

def create(parent):
    return showFotos(parent)

[wxID_SHOWFOTOS, wxID_SHOWFOTOSBITMAPBUTTON1, wxID_SHOWFOTOSBITMAPBUTTON2, 
 wxID_SHOWFOTOSBITMAPBUTTON3, wxID_SHOWFOTOSBITMAPBUTTON4, 
 wxID_SHOWFOTOSBITMAPBUTTON5, wxID_SHOWFOTOSBITMAPBUTTON6, 
 wxID_SHOWFOTOSBITMAPBUTTON7, wxID_SHOWFOTOSGRID1, wxID_SHOWFOTOSPANEL1, 
 wxID_SHOWFOTOSRICHTEXTCTRL1, wxID_SHOWFOTOSSTATICBITMAP1, 
 wxID_SHOWFOTOSSTATICTEXT1, wxID_SHOWFOTOSSTATICTEXT2, 
 wxID_SHOWFOTOSSTATICTEXT3, wxID_SHOWFOTOSSTATICTEXT4, 
 wxID_SHOWFOTOSSTATICTEXT5, wxID_SHOWFOTOSTEXTCTRL1, wxID_SHOWFOTOSTEXTCTRL2, 
 wxID_SHOWFOTOSTEXTCTRL3, wxID_SHOWFOTOSTEXTCTRL4, 
] = [wx.NewId() for _init_ctrls in range(21)]

class showFotos(wx.Frame):

    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Frame.__init__(self, id=wxID_SHOWFOTOS, name='showFotos',
              parent=prnt, pos=wx.Point(4, 0), size=wx.Size(1350, 759),
              style=wx.CLOSE_BOX, title='Fotos Sussan')
        self.SetClientSize(wx.Size(1342, 732))

        self.panel1 = wx.Panel(id=wxID_SHOWFOTOSPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(1342, 732),
              style=wx.TAB_TRAVERSAL)

        self.staticBitmap1 = wx.StaticBitmap(bitmap=wx.Bitmap(u'fotos/sussan_1.jpg',
              wx.BITMAP_TYPE_JPEG), id=wxID_SHOWFOTOSSTATICBITMAP1,
              name='staticBitmap1', parent=self.panel1, pos=wx.Point(472, 24),
              size=wx.Size(800, 533), style=0)

        self.bitmapButton1 = wx.BitmapButton(bitmap=wx.Bitmap(u'flechaIzquierda1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON1,
              name='bitmapButton1', parent=self.panel1, pos=wx.Point(408, 24),
              size=wx.Size(56, 533), style=wx.BU_AUTODRAW)
        self.bitmapButton1.Bind(wx.EVT_BUTTON, self.OnBotonImagenIzquierda,
              id=wxID_SHOWFOTOSBITMAPBUTTON1)

        self.bitmapButton2 = wx.BitmapButton(bitmap=wx.Bitmap(u'flechaDerecha1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON2,
              name='bitmapButton2', parent=self.panel1, pos=wx.Point(1280, 24),
              size=wx.Size(56, 533), style=wx.BU_AUTODRAW)
        self.bitmapButton2.Bind(wx.EVT_BUTTON, self.OnBotonImagenDerecha,
              id=wxID_SHOWFOTOSBITMAPBUTTON2)

        self.staticText1 = wx.StaticText(id=wxID_SHOWFOTOSSTATICTEXT1,
              label='P.T.C.', name='staticText1', parent=self.panel1,
              pos=wx.Point(16, 16), size=wx.Size(60, 24), style=0)
        self.staticText1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))

        self.textCtrl1 = wx.TextCtrl(id=wxID_SHOWFOTOSTEXTCTRL1,
              name='textCtrl1', parent=self.panel1, pos=wx.Point(16, 48),
              size=wx.Size(224, 32), style=0, value='')
        self.textCtrl1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Arial'))

        self.bitmapButton6 = wx.BitmapButton(bitmap=wx.Bitmap(u'botonAceptarNegro1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON6,
              name='bitmapButton6', parent=self.panel1, pos=wx.Point(256, 32),
              size=wx.Size(56, 56), style=wx.BU_AUTODRAW)
        self.bitmapButton6.Bind(wx.EVT_BUTTON, self.OnButtonAceptarPTC,
              id=wxID_SHOWFOTOSBITMAPBUTTON6)

        self.bitmapButton3 = wx.BitmapButton(bitmap=wx.Bitmap(u'botonCancelarNegro1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON3,
              name='bitmapButton3', parent=self.panel1, pos=wx.Point(320, 32),
              size=wx.Size(56, 56), style=wx.BU_AUTODRAW)
        self.bitmapButton3.Bind(wx.EVT_BUTTON, self.OnButtonPTC,
              id=wxID_SHOWFOTOSBITMAPBUTTON3)

        self.staticText2 = wx.StaticText(id=wxID_SHOWFOTOSSTATICTEXT2,
              label=u'C\xf3digo Sussan', name='staticText2', parent=self.panel1,
              pos=wx.Point(16, 104), size=wx.Size(154, 24), style=0)
        self.staticText2.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))

        self.textCtrl2 = wx.TextCtrl(id=wxID_SHOWFOTOSTEXTCTRL2,
              name='textCtrl2', parent=self.panel1, pos=wx.Point(16, 136),
              size=wx.Size(224, 32), style=0, value='')
        self.textCtrl2.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Arial'))

        self.bitmapButton7 = wx.BitmapButton(bitmap=wx.Bitmap(u'botonAceptarNegro1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON7,
              name='bitmapButton7', parent=self.panel1, pos=wx.Point(256, 120),
              size=wx.Size(56, 56), style=wx.BU_AUTODRAW)
        self.bitmapButton7.Bind(wx.EVT_BUTTON, self.OnButtonAceptarCSussan,
              id=wxID_SHOWFOTOSBITMAPBUTTON7)

        self.bitmapButton4 = wx.BitmapButton(bitmap=wx.Bitmap(u'botonCancelarNegro1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON4,
              name='bitmapButton4', parent=self.panel1, pos=wx.Point(320, 120),
              size=wx.Size(56, 56), style=wx.BU_AUTODRAW)
        self.bitmapButton4.Bind(wx.EVT_BUTTON, self.OnButtonCodigo,
              id=wxID_SHOWFOTOSBITMAPBUTTON4)

        self.staticText3 = wx.StaticText(id=wxID_SHOWFOTOSSTATICTEXT3,
              label=u'Descripci\xf3n', name='staticText3', parent=self.panel1,
              pos=wx.Point(16, 208), size=wx.Size(120, 24), style=0)
        self.staticText3.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))

        self.richTextCtrl1 = wx.richtext.RichTextCtrl(id=wxID_SHOWFOTOSRICHTEXTCTRL1,
              parent=self.panel1, pos=wx.Point(16, 240), size=wx.Size(360, 104),
              style=wx.richtext.RE_MULTILINE, value='')
        self.richTextCtrl1.SetLabel('text')
        self.richTextCtrl1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))
        self.richTextCtrl1.SetEditable(False)

        self.staticText4 = wx.StaticText(id=wxID_SHOWFOTOSSTATICTEXT4,
              label='Grupo', name='staticText4', parent=self.panel1,
              pos=wx.Point(16, 368), size=wx.Size(63, 24), style=0)
        self.staticText4.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))

        self.textCtrl3 = wx.TextCtrl(id=wxID_SHOWFOTOSTEXTCTRL3,
              name='textCtrl3', parent=self.panel1, pos=wx.Point(16, 400),
              size=wx.Size(360, 32), style=0, value='')
        self.textCtrl3.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Arial'))
        self.textCtrl3.SetEditable(False)

        self.staticText5 = wx.StaticText(id=wxID_SHOWFOTOSSTATICTEXT5,
              label='Precio', name='staticText5', parent=self.panel1,
              pos=wx.Point(16, 456), size=wx.Size(64, 24), style=0)
        self.staticText5.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Arial'))

        self.textCtrl4 = wx.TextCtrl(id=wxID_SHOWFOTOSTEXTCTRL4,
              name='textCtrl4', parent=self.panel1, pos=wx.Point(16, 488),
              size=wx.Size(120, 32), style=0, value='')
        self.textCtrl4.SetEditable(False)
        self.textCtrl4.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Arial'))

        self.bitmapButton5 = wx.BitmapButton(bitmap=wx.Bitmap(u'botonSalir1.png',
              wx.BITMAP_TYPE_PNG), id=wxID_SHOWFOTOSBITMAPBUTTON5,
              name='bitmapButton5', parent=self.panel1, pos=wx.Point(16, 632),
              size=wx.Size(128, 88), style=wx.BU_AUTODRAW)
        self.bitmapButton5.Bind(wx.EVT_BUTTON, self.OnButtonSalir,
              id=wxID_SHOWFOTOSBITMAPBUTTON5)

        self.grid1 = wx.grid.Grid(id=wxID_SHOWFOTOSGRID1, name='grid1',
              parent=self.panel1, pos=wx.Point(424, 560), size=wx.Size(896,
              168), style=0)
        self.grid1.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Arial'))
        self.grid1.EnableEditing(False)
        self.grid1.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK,
              self.OnGrid1GridCellLeftDclick)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.padre = parent
        self.textCtrl1.SetFocus()
        self.CenterOnScreen()
        self.initGrilla()
        self.cantFil = 0
        self.cantCol = 0
        self.listaImagenes = []
        self.filaSeleccionada = -1
        self.ptc = ""
        self.codsussan = ""
        self.conectado = None
        try:
            self.sucursalActiva, self.conectado = utiles.getSucursalActiva(self.conectado)
        except:
            texto = "No hay conexion con la Base de Datos"
            utiles.mensaje(None, texto)
            self.OnButtonSalir(None)
            return 1

    def OnButtonSalir(self, event):
        self.padre.Show(True)
        self.padre.Enable(True)
        self.padre.button1.SetFocus()
        self.Close()

    def initGrilla(self, cantidadDeFilas = 0):
        columnas = ['PTC','Talle','Color','Stock\nCasa Central','Stock\nParana','Stock\nSaska']
        self.cantFil = cantidadDeFilas
        self.cantCol  = len(columnas)
        self.grid1.CreateGrid(self.cantFil,self.cantCol)
        #self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectCells)
        self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        #pone encabezado de renglon (numerico) y titulo a las columnas
        #-> SetColLabelValue
        for i in range(len(columnas)-1,-1,-1): 
            self.grid1.SetColLabelValue(i, columnas[i])
        #fija que las columnas tengan el ancho segun su contenido
        #-> AutoSizeColumn
        self.grid1.AutoSizeColumn(0,True)
        #establece un ancho fijo a la columna, independientemente del contenido
        #-> SetColSize
        self.grid1.SetColSize(0,100)
        self.grid1.SetColSize(1,90)
        self.grid1.SetColSize(2,230)
        self.grid1.SetColSize(3,90)
        self.grid1.SetColSize(4,90)
        self.grid1.SetColSize(5,90)
        #desactiva redimensionar columna y renglon usando el mouse 
        #-> DisableDrag
        self.grid1.DisableDragColSize()
        self.grid1.DisableDragRowSize()
        for fil in xrange(self.cantFil):
            #establece un ancho fijo a las filas -> SetRowSize
            self.grid1.SetRowSize(fil,30)
            for col in xrange(self.cantCol):
                #establece que a las casillas no se le
                #pueden introducir valores por teclado -> SetReadOnly
                self.grid1.SetReadOnly(fil,col,True)

    def cargarCasillero(self,fil,col,valor):
        self.grid1.SetCellValue(fil,col,valor)
        self.grid1.SetCellFont(fil,col,wx.Font(16, wx.SWISS, wx.NORMAL, 
                wx.BOLD, False, 'Arial'))

    def ingresoManual(self, contenido):
        valor = ""
        dlg = ingresoManual.Dialog1(self, contenido)
        try:
            dlg.ShowModal()
            valor = dlg.valor
        finally:
            dlg.Destroy()   
        return valor

    def OnButtonPTC(self, event):
        self.accionCancelar(None)
        self.textCtrl1.SetFocus()

    def OnButtonCodigo(self, event):
        self.accionCancelar(None)
        self.textCtrl2.SetFocus()

    def accionCancelar(self, event):
        self.textCtrl1.SetValue("") #ptc
        self.textCtrl2.SetValue("") #cod sussan
        self.textCtrl3.SetValue("") #grupo
        self.textCtrl4.SetValue("") #precio
        self.richTextCtrl1.SetValue("")
        self.grid1.ClearGrid()
        for i in xrange(self.grid1.GetNumberRows()):
            self.grid1.DeleteRows()
        self.textCtrl1.SetFocus()
        
        self.staticBitmap1.SetPosition(wx.Point(472, 24))
        self.staticBitmap1.SetSize(wx.Size(800, 533))
        miImagen = wx.Bitmap(imageFile,wx.BITMAP_TYPE_JPEG)
        self.staticBitmap1.SetBitmap(miImagen)
        self.listaImagenes = []
        self.filaSeleccionada = -1

        self.ptc = ""
        self.codsussan = ""

    def OnButtonAceptarPTC(self, event):
        valor = self.textCtrl1.GetValue()
        if valor == "":
            valor = self.ingresoManual(self.textCtrl1.GetValue())
        if valor == "":
            self.textCtrl1.SetFocus()
            return 0
        self.textCtrl1.SetValue(valor)
        self.ptc = valor

        #teniendo PTC busco Codigo Sussan
        self.codsussan = self.buscarProductoXptc(self.ptc)
        if self.codsussan == 1:
            return 1

        aux1 = self.codsussan
        aux2 = self.ptc
        self.accionCancelar(None)
        self.codsussan = aux1
        self.ptc = aux2

        self.textCtrl1.SetValue(self.ptc)
        self.textCtrl2.SetValue(self.codsussan)
        #le paso el control al boton Aceptar de CodSussan
        self.OnButtonAceptarCSussan(event)
        
    def buscarProductoXptc(self, ptc):
        #busco por PTC para obtener el codigo sussan
        print "SELECT: PTC -> buscando informacion del Codigo Sussan"
        consultaSQL = "SELECT codsussan FROM producto_talle_color "
        consultaSQL = consultaSQL + "WHERE id = '%s'" % (ptc)
        resultado, self.conectado = consultasBD.ordenCrudaDict(consultaSQL, self.conectado)
        if len(resultado) == 0:
            texto = "No hay producto con el PTC ingresado"
            utiles.mensaje(None, texto)
            return 1
        return resultado[0]['codsussan']

    def OnButtonAceptarCSussan(self, event):
        valor = self.textCtrl2.GetValue()
        if valor == "":
            valor = self.ingresoManual(self.textCtrl2.GetValue())
        if valor == "":
            self.textCtrl2.SetFocus()
            return 1
        self.textCtrl2.SetValue(valor)
        self.codsussan = valor
        self.ptc = self.textCtrl1.GetValue()

        #Si se ha ingresado un ptc y un codsussan, y si se busca por codsussan
        #se debe verificar que el ptc pertenezca al codsussan. Las siguientes
        #4 lineas verifica esto. Si el ptc no corresponde al codsussan, se 
        #pone el valor del ptc en "" (blanco)
        aux = self.buscarProductoXptc(self.ptc)
        if self.codsussan != aux:
            aux = self.codsussan
            self.accionCancelar(None)
            self.codsussan = aux
            self.textCtrl2.SetValue(aux)

        #teniendo codigo sussan, busco info del producto y todos sus ptc
        producto = self.buscarInfoProducto(self.codsussan)
        if producto == ():
            return 1
        stock = self.buscarInfoStock(self.codsussan)
        fotos = self.buscarInfoFotos(self.codsussan)
        print "-"*80
        self.despliegaInfoEnPantalla(producto, stock, fotos)

    def buscarInfoProducto(self, codsussan):
        aux = []
        aux.append("SELECT ")
        aux.append(" C.ptc, C.codsussan, C.descripcion, C.precio, C.grupo, ")
        aux.append(" C.nombregrupo, C.talle, C.color, D.nombre as nombrecolor ")
        aux.append("FROM ")
        aux.append("  (SELECT B.id AS ptc, A.codsussan, A.descripcion, ")
        aux.append("          A.precio, A.grupo, A.nombregrupo, ")
        aux.append("          B.talle AS talle, B.color AS color ")
        aux.append("   FROM ")
        aux.append("     (SELECT P.codsussan AS codsussan,P.descri AS descripcion, ")
        aux.append("             P.preciolt1 AS precio, P.grupo AS grupo, ")
        aux.append("             G.nombregrupo AS nombregrupo ")
        aux.append("      FROM ")
        aux.append("         productos AS P, grupos AS G")
        aux.append("      WHERE P.codsussan = '%s' " % (codsussan))
        aux.append("            AND P.grupo = G.idgrupo)")
        aux.append("         as A, producto_talle_color AS B ")
        aux.append("   WHERE B.codsussan = A.codsussan) as C, colores AS D ")
        aux.append("WHERE C.color = D.idcolor")
        consultaSQL = ""
        for elemento in aux:
            consultaSQL = consultaSQL + elemento

        print "SELECT: CodSussan -> consulta informacion basica del producto"
        producto, self.conectado = consultasBD.ordenCrudaDict(consultaSQL, self.conectado)
        if len(producto) == 0:
            texto = "No hay producto con el PTC y/o Cod Sussan ingresado"
            utiles.mensaje(None, texto)
            return ()
        return producto

    def buscarInfoStock(self, codsussan):
        aux = []
        aux.append("SELECT ")
        aux.append("   A.ptc as ptc, A.codsussan as codsussan, ")
        aux.append("   B.sucursal as sucursal, B.stock as stock ")
        aux.append("FROM ")
        aux.append("  (SELECT id as ptc,codsussan FROM producto_talle_color ")
        aux.append("   WHERE codsussan = '%s') as A, " % (codsussan))
        aux.append("         stock as B ")
        aux.append("WHERE A.ptc = B.ptc")
        consultaSQL = ""
        for elemento in aux:
            consultaSQL = consultaSQL + elemento
        
        print "SELECT: Stock -> obteniendo stock del producto en sucursales"
        stock, self.conectado = consultasBD.ordenCrudaDict(consultaSQL, self.conectado)
        if len(stock) == 0:
            print "No hay informacion de stock del producto en sucursales"
            return ()
        return stock

    def buscarInfoFotos(self, codsussan):
        print "SELECT: Fotos -> obtencion de las direcciones de las fotos"
        consultaSQL = "SELECT ptc, codsussan,directorio,archivo "
        consultaSQL = consultaSQL + "FROM fotossussan "
        consultaSQL = consultaSQL + "WHERE codsussan = '%s'" % (codsussan)
        fotos, self.conectado = consultasBD.ordenCrudaDict(consultaSQL, self.conectado)
        if len(fotos) == 0:
            print "No hay informacion de fotografias"
            return ()
        self.listaImagenes = fotos
        return fotos
    
    def pintarRenglon(self, renglon, colorFondo, colorTexto):
        columnas = self.grid1.GetNumberCols()
        miColor = self.grid1.GetCellBackgroundColour(renglon,0)
        if self.filaSeleccionada != -1:
            #si hay un renglon pintado anterior, se despinta primero
            aux = self.filaSeleccionada
            self.filaSeleccionada = -1
            self.pintarRenglon(aux, colorFondo, colorTexto)
        if miColor == colorFondo:
            aux = colorFondo
            colorFondo = colorTexto
            colorTexto = aux
        for col in xrange(columnas):
            self.grid1.SetCellBackgroundColour(renglon,col,colorFondo)
            self.grid1.SetCellTextColour(renglon,col,colorTexto)
        self.grid1.Refresh()
        self.filaSeleccionada = renglon
        ptc = self.grid1.GetCellValue(renglon,0)
        return ptc

    def pintarImagen(self, ptc, fotos):
        archivo = ""
        bandera = False
        #busco imagen por ptc en fotos
        for archivos in fotos:
            if archivos['ptc'] == ptc:
                archivo = archivos['directorio']+archivos['archivo']
                bandera = True
                break
        #busco imagen por default, que no tendra ptc
        if not bandera:
            for archivos in fotos:
                if archivos['ptc'] == "":
                    archivo = archivos['directorio']+archivos['archivo']
                    break
        if not os.path.lexists(archivo):
            print "cargando imagen por default"
            archivo = imageFile
        #se muestra la imagen en pantalla
        miImagen = wx.Bitmap(archivo,wx.BITMAP_TYPE_JPEG)
        self.staticBitmap1.SetPosition(wx.Point(472, 24))
        self.staticBitmap1.SetSize(wx.Size(800, 533))
        self.staticBitmap1.SetBitmap(miImagen)

    def despliegaInfoEnPantalla(self, producto, stock, fotos):
        self.richTextCtrl1.SetValue(producto[0]['descripcion'])
        nombregrupo = str(producto[0]['grupo'])+" "+producto[0]['nombregrupo']
        self.textCtrl3.SetValue(nombregrupo)
        self.textCtrl4.SetValue(str(producto[0]['precio']))

        for x in producto:
            self.grid1.InsertRows()
        
        self.filaSeleccionada = -1

        for i,item in enumerate(producto):
            #PTC,Talle,Color,Stock CC,Stock Parana,Stock Saska
            self.grid1.SetRowSize(i,35)

            self.grid1.SetCellAlignment(i,0,wx.ALIGN_CENTER,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,0,item['ptc'])

            self.grid1.SetCellAlignment(i,1,wx.ALIGN_CENTER,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,1,item['talle'])

            nombrecolor = item['color']+" "+item['nombrecolor']
            self.grid1.SetCellAlignment(i,2,wx.ALIGN_LEFT,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,2,nombrecolor)
            
            self.grid1.SetCellAlignment(i,3,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,3,"0.0")
            self.grid1.SetCellAlignment(i,4,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,4,"0.0")
            self.grid1.SetCellAlignment(i,5,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
            self.cargarCasillero(i,5,"0.0")

            if item['ptc'] == self.textCtrl1.GetValue():
                self.pintarRenglon(i, NEGRO, BLANCO)
                self.filaSeleccionada = i

            for elemento in stock:
                if elemento['ptc'] == item['ptc']:
                    self.grid1.SetCellAlignment(i,3,wx.ALIGN_RIGHT,wx.ALIGN_CENTRE)
                    self.cargarCasillero(i,2+elemento['sucursal'],str(float(elemento['stock'])))
                    

        self.pintarImagen(self.ptc, fotos)
        desplazamiento = self.filaSeleccionada / 4
        self.grid1.ScrollPages(desplazamiento)
        return 0

    def OnGrid1GridCellLeftDclick(self, event):
        fila = self.grid1.GetGridCursorRow()
        ptc = self.pintarRenglon(fila, NEGRO, BLANCO)
        self.pintarImagen(ptc, self.listaImagenes)
        self.textCtrl1.SetValue(ptc)

    def OnBotonImagenIzquierda(self, event):
        filas = [x for x in xrange(self.grid1.GetNumberRows())]
        if self.filaSeleccionada > 0:
            nuevaSeleccion = self.filaSeleccionada - 1
            self.grid1.ScrollLines(-2)
        elif self.filaSeleccionada == 0:
            nuevaSeleccion = filas[-1:][0]
            desplazamiento = (self.grid1.GetNumberRows() / 4 )
            self.grid1.ScrollPages(desplazamiento)
        else:
            print "no hay informacion de producto mostrada"
            return 1
        ptc = self.pintarRenglon(nuevaSeleccion, NEGRO, BLANCO)
        self.textCtrl1.SetValue(ptc)
        self.pintarImagen(ptc, self.listaImagenes)

    def OnBotonImagenDerecha(self, event):
        filas = [x for x in xrange(self.grid1.GetNumberRows())]
        if self.filaSeleccionada == -1:
            print "no hay informacion de producto mostrada"
            return 1
        elif self.filaSeleccionada < filas[-1:][0]:
            nuevaSeleccion = self.filaSeleccionada + 1
            self.grid1.ScrollLines(2)
        else:
            desplazamiento = -1 * (self.grid1.GetNumberRows() / 4 )
            self.grid1.ScrollPages(desplazamiento)
            nuevaSeleccion = filas[0]
        ptc = self.pintarRenglon(nuevaSeleccion, NEGRO, BLANCO)
        self.textCtrl1.SetValue(ptc)
        self.pintarImagen(ptc, self.listaImagenes)
